home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / tas412.zip / SCAN1.TAS < prev    next >
Text File  |  1991-11-11  |  4KB  |  108 lines

  1. {
  2.    SCRIPT : SCAN1.TAS
  3.    Screen for various conditions and create a report with
  4.    BUY/SELL Signals
  5.       x day price breakout
  6.       y day volume breakout
  7.       Stochastics buy/sell
  8.       RSI breakout
  9.    Author : Martin Moore
  10.    Date   : 11/9/91
  11. }
  12. #MAX_QUOTES 100
  13. #OUTPUT_FILE SCAN1.LST
  14. { SCAN Parameter settings follow.
  15.    These parameters can be changed to suit you
  16. }
  17. PRICE_BREAKOUT_PERIOD = 50;     { Price breakout lookback period}
  18. VOL_BREAKOUT_PERIOD = 30;       { Volume breakout lookback period}
  19. STOCH_PERIOD        = 14;       { Stoch %K period}
  20. STOCH_SLOW          = 3;        { Stoch %D slowing}
  21. RSI_PERIOD          = 14;       { RSI period}
  22. VOL_PERCENT         = 300;      { Percentage for VOLUME BREAKOUT}
  23. { Declare various arrays to hold the results of indicators  }
  24. HHV_A : ARRAY;    { Place to save HHV}
  25. VOL_A : ARRAY;    { Place to save Volume Moving average}
  26. STK_A : ARRAY;    { Place to save Stochastic %K}
  27. STD_A : ARRAY;    { Place to save Stochastic %D}
  28. RSI_A : ARRAY;    { Place to save RSI        }
  29. HHV_A = HHV(C,PRICE_BREAKOUT_PERIOD);
  30. VOL_A = MOV(V,VOL_BREAKOUT_PERIOD,'S');
  31. { Use STOCH_PERIOD day stoch with 3 day slowing}
  32. STK_A = STOCH(STOCH_PERIOD,3);
  33. { Compute %D as 3 day EMA of %K}
  34. STD_A = MOV(STK_A,STOCH_SLOW,'E');
  35. { RSI_PERIOD Day RSI}
  36. RSI_A = RSI(RSI_PERIOD);
  37. PRICE_BREAKOUT = 0;
  38. VOL_BREAKOUT   = 0;
  39. STOCH_BUY      = 0;
  40. STOCH_SELL     = 0;
  41. RSI_BUY        = 0;
  42. RSI_SELL       = 0;
  43. if  CLOSE OF TODAY IS GREATER THAN HHV_A OF YESTERDAY THEN
  44.     begin
  45.       PRICE_BREAKOUT = 1;
  46.     end;
  47. if VOLUME OF TODAY IS GREATER THAN
  48.    VOL_PERCENT/100 * VOL_A OF YESTERDAY THEN
  49.     begin
  50.       VOL_BREAKOUT = (VOLUME OF TODAY/VOL_A OF YESTERDAY) * 100;
  51.     end;
  52. if  STD_A OF YESTERDAY IS LESS THAN OR EQUAL TO 20 AND
  53.     STK_A OF YESTERDAY IS LESS THAN STD_A OF YESTERDAY AND
  54.     STK_A OF TODAY IS GREATER THAN STD_A OF TODAY THEN
  55.     begin
  56.        STOCH_BUY = 1;
  57.     end;
  58. if  STD_A OF YESTERDAY IS GREATER THAN OR EQUAL TO 80 AND
  59.     STK_A OF YESTERDAY IS GREATER THAN STD_A OF YESTERDAY AND
  60.     STK_A OF TODAY IS LESS THAN STD_A OF TODAY THEN
  61.     begin
  62.        STOCH_SELL = 1;
  63.     end;
  64. if  RSI_A of YESTERDAY IS LESS THAN OR EQUAL TO 30 AND
  65.     RSI_A OF TODAY IS GREATER THAN 30 THEN
  66.     begin
  67.        RSI_BUY    = 1;
  68.     end;
  69. if  RSI_A of YESTERDAY IS GREATER THAN 70 and RSI_A of TODAY
  70.     IS LESS THAN 70 THEN
  71.     begin
  72.        RSI_SELL   = 1;
  73.     end;
  74. IF FIRST_TICKER THEN
  75. begin
  76. WRITELN(
  77. '                           CURR     PREV   CURR        STOCH '
  78. );
  79. WRITELN(
  80. 'TICKER  NAME              CLOSE    CLOSE  Vol %    %K       %D       RSI'
  81. );
  82. WRITELN(
  83. '------------------------ ------- ------- ------- ------- ------- -------'
  84. );
  85. end;
  86. IF PRICE_BREAKOUT OR VOL_BREAKOUT OR STOCH_BUY OR STOCH_SELL OR
  87.    RSI_BUY OR RSI_SELL THEN
  88. BEGIN
  89.    WRITELN(ticker,fullname,close, close of yesterday,
  90.          ((volume/VOL_A[-1]))*100,'%%',stk_a,std_a,
  91.          RSI_A);
  92.    IF PRICE_BREAKOUT THEN
  93.         WRITELN('\t\t* PRICE BREAKOUT ABOVE ',
  94.         INT(PRICE_BREAKOUT_PERIOD), ' DAY HIGH OF CLOSE');
  95.    IF VOL_BREAKOUT THEN
  96.         WRITELN('\t\t* VOLUME BREAKOUT ',VOL_BREAKOUT,
  97.         ' PERCENT OVER LAST',
  98.         INT(VOL_BREAKOUT_PERIOD), ' DAYS');
  99.    IF STOCH_BUY THEN
  100.         WRITELN('\t\t* STOCH BUY');
  101.    IF STOCH_SELL THEN
  102.         WRITELN('\t\t* STOCH SELL');
  103.    IF RSI_BUY THEN
  104.         WRITELN('\t\t* RSI BUY');
  105.    IF RSI_SELL THEN
  106.         WRITELN('\t\t* RSI SELL');
  107. END;
  108.